package com.java.struts.user.service;

import com.java.struts.base.exception.BusinessException;
import com.java.struts.user.dao.UserInfoDao;
import com.java.struts.user.entity.UserinfoEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 用于处理用户
 * 的逻辑代码
 * */
public class UserInfoService {
    //创建dao类对象
    private  UserInfoDao userDao = new UserInfoDao();
    /*
     * 用添加用户
     */
    public void userAdd(String  userName, String  userPwd){
        try {
            //判断是否为空
            if(userName == null && "".equals(userName)){
                throw new BusinessException("用户名或密码不能为空");
            }
            if(userPwd == null && "".equals(userPwd)){
                throw  new BusinessException("用户名或密码不能为空");
            }
            //将数据封装在实体中
            UserinfoEntity user = new UserinfoEntity();
            //user.setUid(0);
            user.setUserNo(userName);
            user.setUpwd(userPwd);
            //调用方法添加
            userDao.userAdd(user);
        }catch(BusinessException e){
            throw new BusinessException("添加异常异常信息：245457");
        }
    }
    /**
     * 用户登录
     * */
    public UserinfoEntity userQuery(String  userName, String  userPwd){
        //定义变量表示 用户的信息
        UserinfoEntity userinfo = null;
        try{
            //判断是否为空
            if(userName == null && "".equals(userName)){
                throw new BusinessException("用户名或密码不能为空");
            }
            if(userPwd == null && "".equals(userPwd)){
                throw  new BusinessException("用户名或密码不能为空");
            }
            //将数据封装在实体中
            UserinfoEntity user = new UserinfoEntity();
            //user.setUid(0);
            user.setUserNo(userName);
            user.setUpwd(userPwd);

            //调用方法查询
            userinfo = userDao.userQuery(user);
            //判断是否这个用户
            if(userinfo == null) {
                throw new BusinessException("用户名或密码输入错误，请重新输入");
            }
        }catch(BusinessException e){
            throw new BusinessException("登录异常 异常信息：2464");
        }
        return userinfo;
    }

    /***
     *
     *  查询用户所有数据
     * @return
     */
    public List<UserinfoEntity> userSelect(){
        //创建List集合
        List<UserinfoEntity> userList = new ArrayList<>();
        try{
            //调用方法全部查询数据
            userList = userDao.userSelect();
            if(userList == null){
                throw  new BusinessException("没有找到相关数据,请刷新试试");
            }
        }catch (BusinessException e){
            throw  new BusinessException("数据查询异常 异常信息：24797");
        }
        return userList;
    }
    /**
     *  删除用户
     * */

    public void userDel(String userId) {
        try {
            //判断非空
            if (userId == null && "".equals(userId)) {
                throw new BusinessException("要删除的编号不能为空哦");
            }
            //类型转换
            int userId1 = Integer.parseInt(userId);
            //调用方法删除
            userDao.userDel(userId1);
        } catch (BusinessException e) {
            throw new BusinessException("删除异常 异常信息：24977");
        }
    }

    /**
     *  修改的逻辑处理
     * @param userName
     * @param userPwd
     * @param userId
     */
     public  void userUpd(String userName, String userPwd, String userId){
        try{
            // 判断
            //判断是否为空
            if(userName == null || "".equals(userName)){
                throw new BusinessException("要修改用户名不能为空");
            }
            if(userPwd == null || "".equals(userPwd)){
                throw  new BusinessException("要修改密码不能为空");
            }
            if(userId == null || "".equals(userId)){
                throw  new BusinessException("修改的编号为空 修改失败");
            }
            int userId1 = Integer.parseInt(userId);
            // 将数据封装 在实体中
            UserinfoEntity user = new UserinfoEntity();
            user.setUid(userId1);
            user.setUserNo(userName);
            user.setUpwd(userPwd);
            //调用 方法 修改数据
            userDao.userUpd(user);
        }catch(BusinessException e ){
            throw  new  BusinessException("修改异常 异常信息：245767");
        }
     }
}
